package cn.cyh.queue_service.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 应用全局配置类
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "application")
public class ApplicationConfig {

    /**
     * 队列配置
     */
    private QueueConfig queue = new QueueConfig();

    /**
     * 队列配置内部类
     */
    @Data
    public static class QueueConfig {
        
        /**
         * 人脸验证相关配置
         */
        private FaceVerification faceVerification = new FaceVerification();
        
        /**
         * 重试相关配置
         */
        private Retry retry = new Retry();
        
        /**
         * 队列超时时间（分钟）
         * 超过此时间未处理的队列将被标记为过期
         */
        private int expirationMinutes = 120;
    }
    
    /**
     * 人脸验证配置内部类
     */
    @Data
    public static class FaceVerification {
        
        /**
         * 人脸验证相似度阈值（0-1之间）
         * 低于此阈值将被视为验证失败
         */
        private float verificationThreshold = 0.75f;
    }
    
    /**
     * 重试配置内部类
     */
    @Data
    public static class Retry {
        
        /**
         * 最大重试次数
         */
        private int maxRetries = 3;
        
        /**
         * 重试间隔（毫秒）
         */
        private long retryInterval = 1000;
    }
} 